SQL 计算两个日期之间相差的秒数、分钟数和小时数 | 您所在的位置:网站首页 › sql计算时间差 行之间 › SQL 计算两个日期之间相差的秒数、分钟数和小时数 |
SQL 计算两个日期之间相差的秒数、分钟数和小时数,算出两个日期之间相差多少秒。例如,希望知道 ALLEN 和 WARD 的 HIREDATE 之间相差多少秒、多少分钟以及多少小时。 SQL 计算两个日期之间相差的秒数、分钟数和小时数 问题描述算出两个日期之间相差多少秒。例如,希望知道 ALLEN 和 WARD 的 HIREDATE 之间相差多少秒、多少分钟以及多少小时。 SQL 计算两个日期之间相差的秒数、分钟数和小时数 解决方案如果我们能算出来两个日期之间相差多少天,那么也就能知道它们相差多少秒、多少分钟和多少小时,只需对不同的时间单位做出相应的换算即可。 DB2 使用 DAYS 函数计算 ALLEN 和 WARD 的 HIREDATE 之间相差多少天,然后进行时间单位换算。 1 select dy*24 hr, dy*24*60 min, dy*24*60*60 sec 2 from ( 3 select ( days(max(case when ename = 'WARD' 4 then hiredate 5 end)) - 6 days(max(case when ename = 'ALLEN' 7 then hiredate 8 end)) 9 ) as dy 10 from emp 11 ) xMySQL 和 SQL Server 使用 DATEDIFF 函数计算 ALLEN 和 WARD 的 HIREDATE 之间相差多少天,然后进行时间单位换算。 1 select datediff(day,allen_hd,ward_hd)*24 hr, 2 datediff(day,allen_hd,ward_hd)*24*60 min, 3 datediff(day,allen_hd,ward_hd)*24*60*60 sec 4 from ( 5 select max(case when ename = 'WARD' 6 then hiredate 7 end) as ward_hd, 8 max(case when ename = 'ALLEN' 9 then hiredate 10 end) as allen_hd 11 from emp 12 ) xOracle 和 PostgreSQL 使用减法计算 ALLEN 和 WARD 的 HIREDATE 之间相差多少天,然后进行时间单位换算。 1 select dy*24 as hr, dy*24*60 as min, dy*24*60*60 as sec 2 from ( 3 select (max(case when ename = 'WARD' 4 then hiredate 5 end) - 6 max(case when ename = 'ALLEN' 7 then hiredate 8 end)) as dy 9 from emp 10 ) x SQL 计算两个日期之间相差的秒数、分钟数和小时数 扩展知识在上述所有的解决方案中,内嵌视图 X 都被用来获取 WARD 和 ALLEN 的 HIREDATE,如下所示。 select max(case when ename = 'WARD' then hiredate end) as ward_hd, max(case when ename = 'ALLEN' then hiredate end) as allen_hd from emp WARD_HD ALLEN_HD ----------- ----------- 22-FEB-1981 20-FEB-1981WARD_HD 和 ALLEN_HD 之间相差的天数分别乘以 24(一天的小时数),1440(一天的分钟数)和 86400(一天的秒数),就得到最终结果了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |